package com.itestor.iptv.modules.common.actions;

import java.util.ArrayList;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.itestor.iptv.global.GlobalConstant;
import com.itestor.iptv.modules.common.service.GroupManageService;
import com.itestor.iptv.modules.common.service.UserService;
import com.itestor.iptv.modules.common.utils.CommonConstant;
import com.itestor.iptv.modules.common.vo.GroupManageOBJ;
import com.itestor.iptv.modules.common.vo.User;
import com.itestor.iptv.global.exception.WebApplicationException;
import com.itestor.iptv.global.utils.LoggerUtils;


/**
 * 
 * @author Mr.li
 *
 */
public class GroupManageModifyAction extends Action {

	/**
	 * Logger for this class.
	 */
	private static final Logger logger = Logger.getLogger(GroupManageModifyAction.class);
	
	/**
	 * 
	 */
    private GroupManageService groupManageService;

	/**
	 * @param mapping struts mapping
	 * @param request request
	 * @param form action form
	 * @param response response
	 * @return action forward
	 * @throws Exception any exception
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		String id = request.getParameter("idGroup");
		
		if (StringUtils.isEmpty(id)) {
			throw new WebApplicationException("global.error.submit", GlobalConstant.PROPERTIES_BUNDLE);
		}

		GroupManageOBJ group = groupManageService.get(Integer.parseInt(id));
		
		if (group != null) {			
			String groupName = request.getParameter("groupName");
			group.setGroupName(groupName);
			request.setAttribute(CommonConstant.REQUEST_ATTR_GROUP, group);			
			LoggerUtils.logActionInfo("Modify the group - groupname: " + groupName, logger, request);
			
			groupManageService.modify(group);
		}
		
		return mapping.findForward(GlobalConstant.FORWARD_SUCCESS);
	}
	
	/** 
	 * @param pGroupManageService
	 */
    public void setGroupManageService(GroupManageService pGroupManageService) {
        groupManageService = pGroupManageService;
    }
	
}
